#include <bits/stdc++.h>

using namespace std;

typedef long long LL;
const int N=1e6+10;

LL n,cnt;
LL p[N];
bool st[N];

void get_prime()
{
	for(LL i=2;i<=n;i++)
	{
		if(!st[i]) p[++cnt]=i;
		for(LL j=1;i*p[j]<=n;j++)
		{
			st[i*p[j]]=true;
			if(i%p[j]==0) break;
		}
	}
}

int main() 
{
	cin>>n;
	
	get_prime();

	for(LL i=1;i<=cnt;i++)
	{
		LL x=p[i],t=0;
		for(LL j=x;j<=n;j*=x)
		{
			t+=n/j;
		}
		cout<<x<<" "<<t<<endl;
	}
	return 0;
}
